People often ask me "How did you learn how to hack?" The answer: by reading. This page is a collection of the blog posts and other articles that I have accumulated over the years of my journey. Enjoy!
stETH. As a reward, it would be given to the NFT holders. This uses standard math to calculate the user's balance since the last claim and determine how much value they are owed.transfer() the to and from on the call need to have their rewards updated. When doing this, if the user had a value of 0, it would reset the rewards index to 0, as if they had never claimed anything. So, what happens if you transfer to yourself? Infinite money...to of the transfer causes issues with the math checkpointing system for the last claim. By resetting it to 0 and then triggering it again, the rewards are calculated over a longer period than they should be. This only works for a self-transfer because a regular transfer sets the reward timestamp to the current time.{"a" : "b"} the filter would be $.a. This allows for complex filter expressions with comparison operators and wildcards, and helps define what data is actually returned.function GETSecurity($variable)
{
if (stristr($variable, ".." ) {
exit("hacking attempt");
}
}
stristr() is a substring function that isn't case sensitive. They had a few ideas for circumventing this check... First, have it treat other characters as dots but this yielded nothing. /.%00./. The string comparison saw one thing but the routing saw another. stristr effectively ignores null bytes but they were not sure why this happened.\n could be used to defeat the PostScript detection. So, using GhostScript, you could write arbitrary files to the server just by reading a file. After finding a clear RCE vulnerability via a file-write, the development team pushed back, saying that real users should have better policies in place, where the default configuration still had the issue.C5 D0 D3 C6 overrode the extension-based format selection, allowing for even jpgs to be processed.gsapi_init_with_args(). So, the policy check never fires.withdraw event of the token on Polygon to obtain it. This event contains the amount and receiver of the transfer inside of it.ERC20PredicateBurnOnly code was affected; it has a CALL opcode before the parsing that writes data to memory that is controllable. By having the parser read this data, we can control the logs that are processed.http://.XML_DOCUMENT_TYPE_NODE this prevents normal entities from being used.php://filter/resource=http://example.com can be used to bypass this.LIBXML_DTDLOAD is enabled. Additionally, the loading time is interesting. The parameters are expanded before the usage of anything else.